package com.afiorenza.collections.Queues;

import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;

import org.junit.Test;

import com.afiorenza.Hijo;
import com.afiorenza.defaultTest;

public class QueueTest extends defaultTest {

	@SuppressWarnings("unchecked")
	@Test
	public void test() {
		ConcurrentLinkedQueue<Hijo> concurrentLinkedQueue = new ConcurrentLinkedQueue<Hijo>();

		loadQueues(concurrentLinkedQueue);
		
		listQueue(concurrentLinkedQueue);
		
//		Queue<Hijo> asLifoQueue = Collections. 
		

	}

	public void loadQueues(@SuppressWarnings("unchecked") Queue<Hijo>... queue) {
		for (Queue<Hijo> queue2 : queue) {
			for (int i = 0; i < this.i; i++) {
				queue2.add(new Hijo("nombre " + i, i, "Escuela" + i));
			}
		}
	}

	private <E extends Hijo> void listQueue(Queue<E> queue) {
		System.out.println("Primer elemento agarrado: " + queue.peek().getNombre());
		queue.remove();
		System.out.println("Segundo elemento agarrado: " + queue.peek().getNombre());
		queue.remove();
		System.out.println("Tercer elemento agarrado: " + queue.peek().getNombre());
		queue.remove();

	}
}
